package com.panshi.modules.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panshi.modules.domain.SysMenu;
import com.panshi.vo.SelectVO;
import com.panshi.vo.SysMenuVO;
import org.springframework.lang.Nullable;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 857
 * @since 2020-07-29
 */
public interface SysMenuService {

    //通过角色id查
    List<SysMenuVO> listSysMenuByRoleIds(List<Integer> roleIds);

    //查询全部
    List<SysMenuVO> listSysMenu();

    IPage<SysMenu> pageMenuList(IPage<SysMenu> page);

    //tree
    List<SysMenuVO> listSysMenuTree();

    //通过id查
    SysMenuVO getSysMenu(Integer id);

    //新增
    int addSysMenu(SysMenuVO sysMenuVO);

    //编辑
    int editSysMenu(SysMenuVO sysMenuVO);

    //删除
    int delSysMenu(Integer id);


    //所有的 Role_menus
    List<SelectVO> xmSelect();

    //指定的 Role_menus
    List<SelectVO> getRoleXmselect(Integer id);


    //========count
    //通过名称查
    int countMenuname(String menuname,@Nullable Integer id);

    //通过permission查
    int countPermission (String permission,Integer id);


    //===========================================================================

    List<SysMenu> listMenu();

    int countMenus();
}
